// 定人（排布人盘)

// 引用
 import Symbol from "./fixed/symbol";
 
 // 八门（九门)
	const gates = Symbol.gates;

const renpan = {
	/**  根据数据获取 对应的下标
	 *   @param   {Array} arr  数组
	 *   @param   {String} searchWord 查询的元素
	 * 	 @returns number -1时表示未找到，其他值表示对应数组的下标
	 */

	getRow: function getRow(arr, searchWord) {
		var row = arr.findIndex((value) => value === searchWord);
		return row;
	},

	/**
	 *  1、明值使门
	 *  	 @param   {String} yinyangdun  阴遁或者阳遁
	 * 		 @param   {String} Ygatesnum  值使门在原九门中对应的宫位
	 * 		 @param   {String} num  值使门落于 ‘时干支’ 与 '地盘暗干支' 对应的宫位
	 * 		 
	 */
	getMzhishimen: function getMzhishimen(yinyangdun, Ygatesnum, num) {
		//初始化明值使门
		let Rmen;
		// 根据 "值使" 将对应的值使门排列到第一位
		let Jmen = gates.slice(Ygatesnum).concat(gates.slice(0, Ygatesnum));
		
		if (yinyangdun == '阳遁') {
			
			Rmen = Jmen.slice(9 - num).concat(Jmen.slice(0, 9 - num));
			
		} else {
			
			Rmen = Jmen.slice(0, num + 1).reverse().concat(Jmen.slice(num + 1).reverse());
		
		}
		return Rmen;
	},
	
	/**
	 *  2、暗值使门
	 *  	 @param   {String} yinyangdun  阴遁或者阳遁
	 * 		 @param   {String} Ygatesnum  值使门在原九门中对应的宫位
	 * 		 @param   {String} num  值使门落于 ‘时干支’ 与 '地盘暗干支' 对应的宫位
	 * 		 
	 */
	getDzhishimen: function getDzhishimen(yinyangdun, BDgatesnum, num) {
		//初始化暗值使门
		let BRmen;
		// 根据 "暗值使" 将对应的值使门排列到第一位
		let BJmen =  gates.slice(BDgatesnum).concat(gates.slice(0, BDgatesnum));
		console.log("BJmen:"+BJmen);
		
		if (yinyangdun == '阳遁') {
			
			BRmen = BJmen.slice(0,9-num).reverse().concat(BJmen.slice(9-num).reverse());
		
		} else {
			
			BRmen =  BJmen.slice(num+1).concat(BJmen.slice(0, num+1));
			
		}
		return BRmen;
	},
	/**
	 *  3、暗干支
	 * 		
	*/
   getRDganzhi:function getRDganzhi(yinyangdun,daterow,num){
	   // 初始化人盘暗干支
	   let RDdry;
	   if (yinyangdun == '阴遁') {
	   	
	   	RDdry = daterow.slice(11 - num).concat(daterow.slice(0, 11 - num));
	   
	   } else {
	   	
	   	RDdry = daterow.slice(0, num+1).reverse().concat(daterow.slice(num+1).reverse());
	   
	   }
	   return RDdry;
   },
   
   /**
	*  总数据
	*/
   
   getAllData:function getAllData(Yinyang,Ygatesnum,BDgatesnum,SXshou,TDnum){
	   // 1、排布人盘明使（涉及元素：『阴阳遁』、『明值符门』在『元旦盘』的宫位、『时干支与地盘暗干支』对应的宫位)：
	    const Rmen = this.getMzhishimen(Yinyang,Ygatesnum,TDnum);
		
	   // 2、排布人盘暗干支（涉及元素：『阴阳遁』、『六甲旬』--时柱、『时干支与地盘暗干支』对应的宫位)：
	    const RDganzhi = this.getRDganzhi(Yinyang,SXshou,TDnum);
		
	   // 3、排布人盘暗使（涉及元素：『阴阳遁』、『暗值符门』在『元旦盘』的宫位、『时干支与地盘暗干支』对应的宫位)：
	    const Dzhishimen = this.getDzhishimen(Yinyang,BDgatesnum,TDnum);
		
	   // 4、输出数据：
		const json = {
			"Rmen":Rmen,
			"RDganzhi":RDganzhi,
			"Dzhishimen":Dzhishimen
		}
		return json;
		
   },
   
   
};
export default renpan;